package com.qingzhou.web.service.impl.params.vo.excel;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.qingzhou.web.service.impl.convert.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

@Data
public class TreatmentExcelVo {
    @ExcelProperty(value = "状态" ,converter = DictConverter.class)
    private String status;
    @ExcelProperty(value = "医院Site" ,converter = DictConverter.class)
    @DictParent("hospital_site_dict")
    private String hospitalSite;
    @ExcelProperty("患者姓名")
    private String patientName;
    @ExcelProperty(value = "患者编号")
    private String patientCode;
    @ExcelProperty(value = "所属队列", converter = DictConverter.class)
    @DictParent("belong_queue_dict")
    private String belongQueue;
    @ExcelProperty(value = "检测项目", converter = TestItemConverter.class)
    private String testItem;

    // 新辅助治疗（表头）
    @ExcelProperty(value = {"新辅助治疗","治疗信息","治疗方式"}, converter = DictConverter.class)
    @DictParent("pre_therapy_way")
    private String preMode;

    @ExcelProperty(value = {"新辅助治疗","治疗信息","治疗药物"})
    private String preTreatmentDrugs;

    @ExcelProperty(value = {"新辅助治疗","治疗信息","周期"})
    private String preCycle;

    @ExcelProperty(value = {"新辅助治疗","治疗信息","开始时间"})
    @DateTimeFormat("yyyy年MM月dd日")
    private Date preStartTime;

    @ExcelProperty(value = {"新辅助治疗","治疗信息","结束时间"})
    @DateTimeFormat("yyyy年MM月dd日")
    private Date preEndTime;

    @ExcelProperty(value = {"新辅助治疗","治疗信息","治疗持续时间"})
    private String preDuration;

    @ExcelProperty(value = {"新辅助治疗","分期信息","第8版TNM分期","T"})
    private String preTblStaging;
    @ExcelProperty(value = {"新辅助治疗","分期信息","第8版TNM分期","N"})
    private String preNblStaging;
    @ExcelProperty(value = {"新辅助治疗","分期信息","第8版TNM分期","M"})
    private String preMblStaging;
    /*@ExcelProperty(value = {"新辅助治疗","分期版本号"}, converter = DictConverter.class)
    @DictParent("stage_version_dict")
    private String preStageVersion;*/
    @ExcelProperty(value = {"新辅助治疗","分期信息","第8版TNM分期","TNM"},converter = DictConverter.class)
    @DictParent("tnm_stage_dict")
    private String preTnm;
    @ExcelProperty(value = {"新辅助治疗","分期信息","第9版TNM分期","T"})
    private String preTblNineStaging;
    @ExcelProperty(value = {"新辅助治疗","分期信息","第9版TNM分期","N"})
    private String preNblNineStaging;
    @ExcelProperty(value = {"新辅助治疗","分期信息","第9版TNM分期","M"})
    private String preMblNineStaging;
    @ExcelProperty(value = {"新辅助治疗","分期信息","第9版TNM分期","TNM"},converter = DictConverter.class)
    @DictParent("tnm_stage_dict")
    private String preNineTnm;
    @ExcelProperty(value = {"新辅助治疗","调整信息","治疗方案"}, converter = PreAdjustDetailConverter.class)
    private String preAdjustDetail;
    @ExcelProperty(value = {"新辅助治疗","治疗效果","临床影像学疗效"})
    private String preCurativEffect;
    @ExcelProperty(value = {"新辅助治疗","治疗效果","病理反应疗效"})
    private String prePathologyEffect;
    @ExcelProperty(value = {"新辅助治疗","治疗效果","不良反应情况（AE）"})
    private String preAdverseEffect;
    @ExcelProperty(value = {"新辅助治疗","治疗效果","治疗费用"})
    private String preTreatmentCost;

//    @ExcelProperty(value = {"新辅助治疗","生活质量评分"}, converter = LifeEvaluationConverter.class)
//    private String preLifeEvaluation;

    // 辅助治疗（表头）
    @ExcelProperty(value = {"辅助治疗Landmark（是否一个月开始）","治疗信息","决策依据"}, converter = DictConverter.class)
    @DictParent("ad_basis_dict")
    private String adBasis;

    @ExcelProperty(value = {"辅助治疗Landmark（是否一个月开始）","治疗信息","是否治疗"}, converter = DictConverter.class)
    @DictParent("sys_yes_no")
    private String postIsTreatment;

    @ExcelProperty(value = {"辅助治疗Landmark（是否一个月开始）","治疗信息","治疗方式"}, converter = DictConverter.class)
    @DictParent("post_therapy_way")
    private String postMode;

    /*@ExcelProperty(value = {"辅助治疗Landmark","治疗方案"}, converter = DictConverter.class)
    @DictParent("post_plan_dict")
    private String postPlan;

    @ExcelProperty(value = {"辅助治疗Landmark","其他治疗方案"})
    private String postPlanOtherDetail;*/

    @ExcelProperty(value = {"辅助治疗Landmark（是否一个月开始）","治疗信息","治疗药物"})
    private String postTreatmentDrugs;

    @ExcelProperty(value = {"辅助治疗Landmark（是否一个月开始）","治疗信息","周期"})
    private String postCycle;

    @ExcelProperty(value = {"辅助治疗Landmark（是否一个月开始）","治疗信息","开始时间"})
    @DateTimeFormat("yyyy年MM月dd日")
    private Date postStartTime;

    @ExcelProperty(value = {"辅助治疗Landmark（是否一个月开始）","治疗信息","结束时间"})
    @DateTimeFormat("yyyy年MM月dd日")
    private Date postEndTime;

    @ExcelProperty(value = {"辅助治疗Landmark（是否一个月开始）","治疗信息","治疗持续时间"})
    private String postDuration;

    @ExcelProperty(value = {"辅助治疗Landmark（是否一个月开始）","治疗效果","不良反应情况（AE）"})
    private String postAdverseEffect;

    @ExcelProperty(value = {"辅助治疗Landmark（是否一个月开始）","治疗效果","治疗费用"})
    private String postTreatmentCost;

//    @ExcelProperty(value = {"辅助治疗Landmark","术后疗效"})
//    private String postCurativEffect;

//    @ExcelProperty(value = {"辅助治疗Landmark","生活质量评分"}, converter = LifeEvaluationConverter.class)
//    private String postLifeEvaluation;

//    @ExcelProperty(value = {"辅助治疗Landmark（是否一个月开始）","治疗方案"}, converter = AdjustDetailConverter.class)
//    private String postAdjustDetail;

    // 辅助治疗-随访
    @ExcelProperty(value = {"辅助治疗-随访（开始）","治疗信息","决策依据"}, converter = DictConverter.class)
    @DictParent("ad_basis_dict")
    private String postFollowAdBasis;

    @ExcelProperty(value = {"辅助治疗-随访（开始）","治疗信息","是否治疗"}, converter = DictConverter.class)
    @DictParent("sys_yes_no")
    private String postFollowIsTreatment;

    @ExcelProperty(value = {"辅助治疗-随访（开始）","治疗信息","治疗方式"}, converter = DictConverter.class)
    @DictParent("post_therapy_way")
    private String postFollowMode;

    /*@ExcelProperty(value = {"辅助治疗-随访（开始）","治疗方案"}, converter = DictConverter.class)
    @DictParent("post_plan_dict")
    private String postFollowPlan;

    @ExcelProperty(value = {"辅助治疗-随访（开始）","其他治疗方案"})
    private String postFollowPlanOtherDetail;*/

    @ExcelProperty(value = {"辅助治疗-随访（开始）","治疗信息","治疗药物"})
    private String postFollowTreatmentDrugs;

    @ExcelProperty(value = {"辅助治疗-随访（开始）","治疗信息","周期"})
    private String postFollowCycle;

    @ExcelProperty(value = {"辅助治疗-随访（开始）","治疗信息","开始时间"})
    @DateTimeFormat("yyyy年MM月dd日")
    private Date postFollowStartTime;

    @ExcelProperty(value = {"辅助治疗-随访（开始）","治疗信息","结束时间"})
    @DateTimeFormat("yyyy年MM月dd日")
    private Date postFollowEndTime;

    @ExcelProperty(value = {"辅助治疗-随访（开始）","治疗信息","治疗持续时间"})
    private String postFollowDuration;

    @ExcelProperty(value = {"辅助治疗-随访（开始）","调整信息","治疗方案"}, converter = AdjustDetailConverter.class)
    private String postFollowAdjustDetail;

    @ExcelProperty(value = {"辅助治疗-随访（开始）","治疗效果","不良反应情况（AE）"})
    private String postFollowAdverseEffect;

    @ExcelProperty(value = {"辅助治疗-随访（开始）","治疗效果","治疗费用"})
    private String postFollowTreatmentCost;

    // 复发/转移后治疗（表头）
    @ExcelProperty(value = {"复发/转移后治疗","是否治疗"}, converter = DictConverter.class)
    @DictParent("sys_yes_no")
    private String lateIsTreatment;

    @ExcelProperty(value = {"复发/转移后治疗","治疗方式"}, converter = DictConverter.class)
    @DictParent("late_therapy_way")
    private String lateMode;

    /*@ExcelProperty(value = {"复发/转移后治疗","治疗方案"}, converter = DictConverter.class)
    @DictParent("late_plan_dict")
    private String latePlan;

    @ExcelProperty(value = {"复发/转移后治疗","治疗方案其他明细"})
    private String latePlanOtherDetail;*/

    @ExcelProperty(value = {"复发/转移后治疗","治疗药物"})
    private String lateTreatmentDrugs;

    @ExcelProperty(value = {"复发/转移后治疗","周期"})
    private String lateCycle;

    @ExcelProperty(value = {"复发/转移后治疗","开始时间"})
    @DateTimeFormat("yyyy年MM月dd日")
    private Date lateStartTime;

    @ExcelProperty(value = {"复发/转移后治疗","结束时间"})
    @DateTimeFormat("yyyy年MM月dd日")
    private Date lateEndTime;

    @ExcelProperty(value = {"复发/转移后治疗","治疗持续时间"})
    private String lateDuration;

    @ExcelProperty(value = {"复发/转移后治疗","不良反应情况（AE）"})
    private String lateAdverseEffect;

    @ExcelProperty(value = {"复发/转移后治疗","治疗费用"})
    private String lateTreatmentCost;

    @ExcelProperty(value = {"复发/转移后治疗","最佳疗效"}, converter = DictConverter.class)
    @DictParent("late_curativ_effect_dict")
    private String lateCurativEffect;

    @ExcelProperty("数据检查原因")
    private String editReason;

    @ExcelProperty("终止原因")
    private String stopReason;

    @ExcelProperty("备注")
    private String remark;

    @ExcelProperty(value="创建人",converter = UserConverter.class)
    private String createBy;

    @ExcelProperty("创建时间")
    private Date createTime;
}
